
package ControllerLag;

import DBLag.DbLaneError;
import DBLag.IFDbLaneError;
import ModelLag.LaneError;
import ModelLag.LaneErrorDescription;
import java.util.ArrayList;
import java.util.GregorianCalendar;


/**
 * Controller klassen for LaneError
 * @author DM75 Gruppe 3
 * @version 2011-12-22
 */
public class LaneErrorCTR {
    private IFDbLaneError dbLaneError;
    
    public LaneErrorCTR()
    {
        dbLaneError = new DbLaneError();   
    }
    
    /**
     * insætter en laneError - gør at man kan oprette en fejl i systemet.
     * @param laneErrorObj
     * @param date
     * @return
     */
    public int insertLaneError (LaneError laneErrorObj, GregorianCalendar date)
    { 
        
        return dbLaneError.insertLaneError(laneErrorObj, date);
    }
    
    /**
     * Henter alle laneErrors som findes.
     * @return ArrayList med laneErrors.
     */
    public ArrayList<LaneError> getAllLaneErrors()
    {
        return dbLaneError.getAllLaneErrors();
    }
    
    /**
     * henter alle de fejl koder der er pre-definerete
     * @return ArrayList af alle fejl koder.
     */
    public ArrayList<LaneErrorDescription> getAllLaneErrorCodes()
    {
        return dbLaneError.getAllLaneErrorCodes();
    }
    
    /**
     * finder en eller flere fejl, på de søge data der måtte være søgt.
     * @param searchString
     * @param retriveAssociation
     * @return arraylist med de søgte og fundene fejl
     */
    public ArrayList<LaneError> findLaneError(String searchString, boolean retriveAssociation)
    {
        return dbLaneError.findLaneError(searchString, retriveAssociation);
    }
    
    /**
     * Finder fejl med en dato
     * @param date
     * @param retriveAssociation
     * @return Arraylist af fejl.
     */
    public ArrayList<LaneError> findLaneErrorWithDate(GregorianCalendar date, boolean retriveAssociation)
    {
        return dbLaneError.findLaneErrorWithDate(date, retriveAssociation);
    }
    
    /**
     * Sletter en fejl, med de givne parameterne.
     * @param laneNo
     * @param errorCode
     * @param date
     * @param time
     * @return int
     */
    public int deleteLaneError(int laneNo, String errorCode, GregorianCalendar date, String time)
    {
        return dbLaneError.deleteLaneError(laneNo, errorCode, date, time);
    }
    
    /**
     * Opdatere en fejl.
     * @param newDescription
     * @param date
     * @param newTime
     * @param newCprNo
     * @param newLaneNo
     * @param newErrorCode
     * @return int
     */
    public int updateLaneError(String newDescription, GregorianCalendar date, String newTime, String newCprNo, int newLaneNo, String newErrorCode)
    {
        return dbLaneError.updateLaneError(newDescription, date, newTime, newCprNo, newLaneNo, newErrorCode);
    }
    
    /**
     * henter alle de fejl der er på den givne måned
     * @param month
     * @param year
     * @param retriveAssociation
     * @return Arraylist
     */
    public ArrayList<LaneError> getLaneErrorsMonth(int month, int year, boolean retriveAssociation)
    {
        return dbLaneError.getLaneErrorsMonth(month, year, retriveAssociation);
    }
    
    
}
